Jenkins - Muiltibrach Pipeline in Bitbucket Cloud
Bitbucket konfigurieren
Dann gehen wir auf bitbuckert.org unter unseren Profile / PersonalSettings / App-passwords wo wir dann auf Create new app-password klicken. In der folgenden Übersicht benötigen wir nur 3 Berechtigungen, eigentlich müssen wir nur 2 setzen. Zum einen ist das Pull Request - lesen, das aktiviert auch Repository - lesen, dann noch Webhooks Read and Write.
Nachdem wir auf erstllen geklickt haben, wir uns das App-Passwort angezeigt, was wir uns für später sichern.
Jenkns konfigurieren
Zuerst installieren wir im Jenkins das Bitbucket Branch Source Plugin.
Nun gehen wir zu unserem Jenkins unter Jenkins verwalten und erstellen uns unter Manage Credentials neue Zugangsdaten.
Wir klicken auf global / Add credentials. Dort wählen wir als Typ: Username und Passwort, als Owner den Benutzernamen vom Bitbucket Account und als Secret das App-password, welches wir im Bitbucket gespeichert haben und vergeben dazu ein Label. Ich habe das gleiche, wie das von Bitbucket verwendet. Dann können wir noch ein Kommentar setzen und speichern das Ganze.
Als nächstes setzen wir noch unseren Bitbucket Endpoint. Dazu gehen wir unter Jenkins verwalten / System konfigurieren und scrollen runter zu Bitbucket Endpoint.
Dort klicken wir auf Hinzufügen, wählen Bitbucket Cloud und aktivieren Manage Hooks. Unter Credentials, wählen wir unsere Jenkins Bitbuckt Credentials aus, welche wir zuvor erstellt haben. Als root Url, setzen wir die Url vom Jenkins, also https://jenkins.tuxnet24.net/ (siehe Jenkins Url).
Nun sind wir soweit, unseren ersten Multibrach Job zu erstellen. Wir gehen nun auf Element hinzufügen und geben dem Job einen Namen und wählen Multibrach Pipeline aus. Als nächstes gehen wir auf Branche Source und wählen Bitbucket aus. Dort tragen wir unseren Bitbucket Benutzernamen (Owner) und unsere (weiter oben) erstellen Jenkins Bitbucket Credentials ein. Nun klicken wir in das Feld Repositorys, dort werden alle für unsere Credentials gültigen Repositorys aufgelistet. Wir wählen das entsprechende Repository aus, in unserem Fall cronjob.
Klicken wir nun auf erstellen, wird auf Bitbucket sofort nach einem Jenkinsfile gesucht. Diesen Scan können wir abbrechen, da wir noch kein Jenkinsfile dort haben. Das wird in der Build Configuration des Jobs definiert. Dort wird Standardmäßig nach einem Jenkinsfile im root des Repositorys gesucht.
Nun gehen wir in Bitbucket zu unseren cronjob Repository, welches wir im Jenkins definiert haben und klicken auf Add file. Die neue Datei nennen wir nun Jenkinsfile und geben folgenden Inhalt für unseren Test dort ein.
pipeline {
agent {label "master"}
stages {
stage('Hello') {
steps {
echo "hello"
}
}
}
}
Wenn wir nun wieder zu Jenkins gehen und unseren soeben erstellten Job ausführen/bauen werden wir sehen, dass nun im Bitbucket nach dem Jenkinsfile gesucht und ausgeführt wird.